notebook: Replace redraw_tabs() with gadget_queue_draw(tabs_gadget)
authorBenjamin Otte <otte@redhat.com>
Thu, 24 Dec 2015 19:38:24 +0000 (20:38 +0100)
committerBenjamin Otte <otte@redhat.com>
Mon, 11 Jan 2016 16:05:23 +0000 (17:05 +0100)
gtk/gtknotebook.c

index 5f7bec45991516ed3a0ff2a2618e5292a4b828cd..307f06e56031401d86582474534448e056bac191 100644 (file)
@@ -524,7 +524,6 @@ static gboolean gtk_notebook_draw_stack      (GtkCssGadget     *gadget,
                                               gpointer          data);
 
 /*** GtkNotebook Private Functions ***/
-static void gtk_notebook_redraw_tabs         (GtkNotebook      *notebook);
 static void gtk_notebook_redraw_arrows       (GtkNotebook      *notebook);
 static void gtk_notebook_real_remove         (GtkNotebook      *notebook,
                                               GList            *list);
@@ -3038,7 +3037,7 @@ tab_prelight (GtkNotebook *notebook,
           (tab != NULL && tab->data != priv->prelight_tab))
         {
           update_prelight_tab (notebook, tab == NULL ? NULL : tab->data);
-          gtk_notebook_redraw_tabs (notebook);
+          gtk_css_gadget_queue_draw (priv->tabs_gadget);
        }
     }
 }
@@ -3394,7 +3393,10 @@ static gboolean
 gtk_notebook_focus_in (GtkWidget     *widget,
                        GdkEventFocus *event)
 {
-  gtk_notebook_redraw_tabs (GTK_NOTEBOOK (widget));
+  GtkNotebook *notebook = GTK_NOTEBOOK (widget);
+  GtkNotebookPrivate *priv = notebook->priv;
+
+  gtk_css_gadget_queue_draw (priv->tabs_gadget);
 
   return FALSE;
 }
@@ -3403,7 +3405,10 @@ static gboolean
 gtk_notebook_focus_out (GtkWidget     *widget,
                         GdkEventFocus *event)
 {
-  gtk_notebook_redraw_tabs (GTK_NOTEBOOK (widget));
+  GtkNotebook *notebook = GTK_NOTEBOOK (widget);
+  GtkNotebookPrivate *priv = notebook->priv;
+
+  gtk_css_gadget_queue_draw (priv->tabs_gadget);
 
   return FALSE;
 }
@@ -4652,7 +4657,6 @@ gtk_notebook_real_insert_page (GtkNotebook *notebook,
 
 /* Private GtkNotebook Functions:
  *
- * gtk_notebook_redraw_tabs
  * gtk_notebook_real_remove
  * gtk_notebook_update_labels
  * gtk_notebook_timer
@@ -4660,58 +4664,6 @@ gtk_notebook_real_insert_page (GtkNotebook *notebook,
  * gtk_notebook_page_compare
  * gtk_notebook_search_page
  */
-static void
-gtk_notebook_redraw_tabs (GtkNotebook *notebook)
-{
-  GtkNotebookPrivate *priv = notebook->priv;
-  GtkAllocation allocation;
-  GtkWidget *widget;
-  GtkNotebookPage *page;
-  GdkRectangle redraw_rect;
-  GtkPositionType tab_pos = get_effective_tab_pos (notebook);
-
-  widget = GTK_WIDGET (notebook);
-
-  if (!gtk_widget_get_mapped (widget) || !gtk_notebook_has_current_page (notebook))
-    return;
-
-  page = priv->cur_page;
-
-  redraw_rect.x = 0;
-  redraw_rect.y = 0;
-
-  gtk_css_gadget_get_content_allocation (priv->gadget, &allocation, NULL);
-  if (allocation.width <= 1)
-    return;
-
-  switch (tab_pos)
-    {
-    case GTK_POS_BOTTOM:
-      redraw_rect.y = allocation.height - page->allocation.height;
-      /* fall through */
-    case GTK_POS_TOP:
-      redraw_rect.width = allocation.width;
-      redraw_rect.height = page->allocation.height;
-
-      break;
-    case GTK_POS_RIGHT:
-      redraw_rect.x = allocation.width - page->allocation.width;
-
-      /* fall through */
-    case GTK_POS_LEFT:
-      redraw_rect.width = page->allocation.width;
-      redraw_rect.height = allocation.height;
-
-      break;
-    }
-
-  redraw_rect.x += allocation.x;
-  redraw_rect.y += allocation.y;
-
-  gdk_window_invalidate_rect (gtk_widget_get_window (widget),
-                              &redraw_rect, TRUE);
-}
-
 static void
 gtk_notebook_redraw_arrows (GtkNotebook *notebook)
 {
@@ -6017,7 +5969,7 @@ gtk_notebook_pages_allocate (GtkNotebook *notebook)
     priv->first_tab = priv->children;
 
   if (tab_allocations_changed)
-    gtk_notebook_redraw_tabs (notebook);
+    gtk_css_gadget_queue_draw (priv->tabs_gadget);
 }
 
 static gboolean